A VXLAN is a hotspot in network virtualization research and can establish a logical network (or an extended Virtual Local Area Network (VLAN)) on a physical network, and support implementation of long-distance virtual machine (VM) migration between geographically dispersed data centers. The VXLAN can finally provide long-distance segmentation support required by a multi-tenant cloud network. The VXLAN mainly solves a problem of tenants isolation in the data centers. In an existing isolation method, VLANs are generally used for isolation, but there are only 4096 VLANs, which cannot satisfy a requirement of isolating multiple tenants in the data centers. A VXLAN standard uses a 24-bit identifier named VXLAN network identifier (VNI). A maximum of 16 million VNIs can be defined in each management domain, and it is ensured that client data is isolated, because only VMs running with a same VNI can perform communication.
FIG. 1 shows a schematic networking diagram of a VXLAN according to the prior art, where multiple virtual VMs are made on servers in FIG. 1. The servers support a VXLAN tunnel end point (VTEP) function, where VNI22 is a network identifier of the VXLAN and allocated to a tenant, VMs of the tenant are distributed on SERVER1, SERVER3, SERVER4, and SERVER5, and there is no VM of the tenant on SERVER2 and SERVER6. When VM1-1 needs to communicate with VM5-1, the VM1-1 sends an Address Resolution Protocol (ARP) request packet, where the ARP request packet is first sent to VTEP1. When the VTEP1 does not learn an address of the VM5-1, the VTEP1 encapsulates the ARP request packet into a VXLAN broadcast packet, and broadcasts the VXLAN broadcast packet on a layer 3 network, where a used broadcast address is a layer 3 multicast address corresponding to the VNI22. If a server on which a VTEP is located does not have the tenant with the VNI22, this VTEP does not receive this broadcast packet, while a VTEP on a server that has a tenant with the VNI22 receives this broadcast packet. For example, VTEP5 on the SERVER5 receives this broadcast packet, and then, the VTEP5 removes a VXLAN header from the broadcast packet to obtain the ARP packet, and broadcasts the ARP packet to all VMs on the SERVER5. Because a target of the ARP packet is the VM5-1, only the VM5-1 responds to the ARP request packet, and no VM on another VTEP responds to the ARP request packet. An ARP response packet sent by the VM5-1 is also encapsulated into a VXLAN packet on the VTEP5. The VTEP5 sends an encapsulated VXLAN packet to the VTEP1, the VTEP1 removes a VXLAN header to obtain the ARP response packet and sends the ARP response packet to the VM1-1. In addition, the VETP1 performs ARP learning, and generates a corresponding ARP entry, so as to ensure subsequent communication between the VM1-1 and the VM5-1.
A management layer of the VXLAN allocates a fixed IP address and a fixed layer 3 multicast address to each VTEP, and the fixed IP address or layer 3 multicast address is used when a VXLAN unicast packet or multicast packet is encapsulated. However, such allocation is inapplicable to some application scenarios of VM multicast, and has the following deficiency:
The existing VXLAN does not support a multicast source selection function of the Internet Group Management Protocol version 3 (IGMPv3). A significant feature of the IGMPv3 is the multicast source selection function, that is, a client can select a multicast source according to requirements of the client. However, in the existing VXLAN technology, only one IP address and one or more multicast addresses are allocated to a VTEP. When processing multicast packets, the VTEP encapsulates all the multicast packets into VXLAN packets using a same multicast address, and a unicast address of the VTEP is used as a source address of a VXLAN packet. When multiple multicast sources are on a same SERVER, and the multicast sources and a client that sends a multicast request are not on a same SERVER, a VTEP of the SERVER on which the multicast sources are located cannot differentiate, according to the received VXLAN packet, which multicast source on the SERVER is requested by the client. As a result, the multicast client cannot receive a multicast packet sent by a selected multicast source.